package com.ruoyi.business.domain.bo.admin;

import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

/**
 * 公司信息业务对象 sys_user_login_company
 *
 * @author ruoyi
 * @date 2024-04-20
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class AdminSysUserLoginCompanyBo extends BaseEntity {

    /**
     * 公司id
     */
    @NotNull(message = "公司id不能为空", groups = { EditGroup.class })
    private Long driverId;

    /**
     * 职务id(当前)
     */
    @NotNull(message = "职务id(当前)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long postId;

    /**
     * 账号id(当前)
     */
    @NotNull(message = "账号id(当前)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long relevanceUserId;

    /**
     * 手机号
     */
    @NotBlank(message = "手机号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String tel;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 其他参数
     */
    @NotBlank(message = "其他参数不能为空", groups = { AddGroup.class, EditGroup.class })
    private String elseParams;

    /**
     * 部门id(创建)
     */
    @NotNull(message = "部门id(创建)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long deptId;

    /**
     * 用户id(创建)
     */
    @NotNull(message = "用户id(创建)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userId;

    /**
     * 分站id(创建)
     */
    @NotNull(message = "分站id(创建)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long substationId;

    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @NotNull(message = "删除标志（0代表存在 1代表删除）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isDeleted;

    /**
     * 真实姓名(法人)
     */
    @NotBlank(message = "真实姓名(法人)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String realName;

    /**
     * 身份证正面URL
     */
    @NotBlank(message = "身份证正面URL不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cardFrontUrl;

    /**
     * 身份证反面URL
     */
    @NotBlank(message = "身份证反面URL不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cardBackUrl;

    /**
     * 身份证号码(法人)
     */
    @NotBlank(message = "身份证号码(法人)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cardId;

    /**
     * 离职时间
     */
    @NotNull(message = "离职时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date resignationTime;

    /**
     * 入职时间
     */
    @NotNull(message = "入职时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date entryTime;

    /**
     * 用户类型(company)
     */
    @NotBlank(message = "用户类型(company)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userType;

    /**
     * 公司名称
     */
    @NotBlank(message = "公司名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String companyName;

    /**
     * 营业执照正面URL
     */
    @NotBlank(message = "营业执照正面URL不能为空", groups = { AddGroup.class, EditGroup.class })
    private String companyFrontUrl;

    /**
     * 营业执照反面URL
     */
    @NotBlank(message = "营业执照反面URL不能为空", groups = { AddGroup.class, EditGroup.class })
    private String companyBackUrl;

    /**
     * 公司简称
     */
    @NotBlank(message = "公司简称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String companyAbbreviation;

    /**
     * 结算方式(现付、月结)
     */
    @NotBlank(message = "结算方式(现付、月结)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String settlementType;

    /**
     * 寄件人省
     */
    @NotNull(message = "寄件人省不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long province;

    /**
     * 寄件人市
     */
    @NotNull(message = "寄件人市不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long city;

    /**
     * 寄件人区
     */
    @NotNull(message = "寄件人区不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long district;

    /**
     * 寄件人地址
     */
    @NotBlank(message = "寄件人地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String address;

    /**
     * 统一社会信用代码
     */
    @NotBlank(message = "统一社会信用代码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String billingUSCI;

    /**
     * 开票开户行
     */
    @NotBlank(message = "开票开户行不能为空", groups = { AddGroup.class, EditGroup.class })
    private String billingOpeningBank;

    /**
     * 开票账户
     */
    @NotBlank(message = "开票账户不能为空", groups = { AddGroup.class, EditGroup.class })
    private String billingAccountNumber;

    /**
     * 开票电话
     */
    @NotBlank(message = "开票电话不能为空", groups = { AddGroup.class, EditGroup.class })
    private String billingTel;

    /**
     * 开票地址
     */
    @NotBlank(message = "开票地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String billingAddress;

}
